package com.swxy.club.service;



import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.swxy.club.dto.Club;
import com.swxy.club.dto.Vo.ClubMemberVO;
import com.swxy.club.dto.Vo.ManagedClubVO;
import com.swxy.club.dto.Vo.UserClubVO;
import com.swxy.club.dto.dt.ClubMemberPageQuery;
import com.swxy.club.dto.dt.ClubQueryDTO;
import com.swxy.club.dto.dt.ClubRegisterDTO;
import com.swxy.club.dto.dt.UpdateMemberRoleDTO;

import java.util.List;

public interface ClubService extends IService<Club> {

    void registerClub(ClubRegisterDTO dto);


    Page<Club> getClubPage(ClubQueryDTO queryDTO);

    Club getUserByClubIdNumber(String clubId);

    /**
     * 更新社团状态
     * @param clubId 社团ID
     * @param status 目标状态
     * 用户令牌
     */
    void updateClubStatus(Long clubId, String status);

    void joinClub(Long clubId);

    List<ClubMemberVO> getClubMembers(Long clubId);

    Page<ClubMemberVO> getClubMembersByPage(ClubMemberPageQuery query);

    void deleteClubMember(Long clubId, Long userId);

    ClubMemberVO getClubMember(Long clubId, Long userId);


    void updateClubMemberRole(UpdateMemberRoleDTO dto);

    List<UserClubVO> getClubsByUserId(Long currentUserId);


    List<ManagedClubVO> getManagedClubsByUserId(Long currentUserId);
}
